User Authentication এবং Authorization

Mobile App Development - মিটিয়র (Meteor) - Realtime Collaboration App উদাহরণ
248

User Authentication এবং Authorization এর মধ্যে পার্থক্য

User Authentication এবং User Authorization দুটি গুরুত্বপূর্ণ নিরাপত্তা ফিচার, কিন্তু তাদের উদ্দেশ্য এবং কার্যকরী ভিন্ন। যদিও অনেক সময় এই দুটি বিষয় একসাথে ব্যবহৃত হয়, তবে তাদের কাজ আলাদা।

  • Authentication: ব্যবহারকারীর পরিচয় যাচাই করা (ব্যবহারকারী কে?)
  • Authorization: ব্যবহারকারীকে নির্দিষ্ট রিসোর্স অ্যাক্সেস করার অনুমতি দেওয়া (ব্যবহারকারী কী করতে পারে?)

১. User Authentication

Authentication হলো প্রক্রিয়া যার মাধ্যমে সিস্টেমে প্রবেশকারী ব্যবহারকারীর পরিচয় নিশ্চিত করা হয়। এটি নিশ্চিত করে যে, যেই ব্যক্তি সিস্টেমে প্রবেশ করছে, সে আসলেই সেই ব্যক্তি যাকে সে দাবী করছে।

Authentication এর প্রক্রিয়া:

  • ব্যবহারকারী তাদের username এবং password প্রদান করে সিস্টেমে লগইন করার চেষ্টা করে।
  • সিস্টেম পরে সেই তথ্য যাচাই করে যদি ব্যবহারকারী নিবন্ধিত থাকে এবং তথ্য সঠিক হয়, তবে access token বা session প্রদান করা হয়।
  • এর মাধ্যমে সিস্টেম বুঝতে পারে যে এটি অনুমোদিত ব্যবহারকারী, যা তাদের অ্যাকাউন্টের সঙ্গে সম্পর্কিত ডেটা অ্যাক্সেস করার অনুমতি দেয়।

Authentication উদাহরণ:

  • Username / Password: একটি সাধারণ এবং প্রচলিত উপায় যেখানে ব্যবহারকারী তাদের username এবং password প্রদান করে।
  • Multi-Factor Authentication (MFA): ব্যবহারকারীকে তাদের পরিচয় আরও একাধিক স্তরে যাচাই করার জন্য যেমন, SMS বা email কোড বা TOTP (Time-Based One-Time Password) ব্যবহার করা।

Authentication উদাহরণ (Node.js ও Passport.js):

// Passport.js ব্যবহার করে Authentication উদাহরণ

const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;

// Local Strategy দিয়ে Username/Password যাচাই
passport.use(new LocalStrategy(function(username, password, done) {
    User.findOne({ username: username }, function(err, user) {
        if (err) { return done(err); }
        if (!user) { return done(null, false, { message: 'Incorrect username.' }); }
        if (!user.validPassword(password)) {
            return done(null, false, { message: 'Incorrect password.' });
        }
        return done(null, user);
    });
}));

এখানে passport-local স্ট্র্যাটেজি ব্যবহার করে username এবং password যাচাই করা হচ্ছে।


২. User Authorization

Authorization হল প্রক্রিয়া যার মাধ্যমে সিস্টেম যাচাই করে যে ব্যবহারকারী কি ধরণের রিসোর্স অ্যাক্সেস করতে পারে এবং সে কি ধরনের কাজ করতে পারবে। এটি যাচাই করে, একবার একটি ব্যবহারকারী সিস্টেমে লগইন করার পর, সে কোন ডেটা বা ফিচার অ্যাক্সেস করতে পারে।

Authorization এর প্রক্রিয়া:

  • লগইন করার পর, সিস্টেম ব্যবহারকারীর roles বা permissions চেক করে।
  • Roles এবং Permissions হল নির্দিষ্ট অধিকার যা নির্ধারণ করে যে ব্যবহারকারী কি করতে পারবে, যেমন “Admin”, “User”, “Manager” ইত্যাদি।
  • Authorization সাধারনত Role-Based Access Control (RBAC) অথবা Permission-Based Access Control ব্যবহার করে কার্যকর করা হয়।

Authorization উদাহরণ:

  • Role-Based Access Control (RBAC): এখানে ব্যবহারকারীদের নির্দিষ্ট রোল দেওয়া হয়, এবং তাদের সেই রোল অনুযায়ী অ্যাক্সেস দেওয়া হয়। উদাহরণস্বরূপ, একটি Admin রোল ব্যবহারকারীকে সমস্ত ডেটা এবং অ্যাপ্লিকেশন ফিচারে অ্যাক্সেস প্রদান করবে, যেখানে User রোল কেবলমাত্র সীমিত ডেটা অ্যাক্সেস করবে।
  • Permission-Based Access Control: এখানে ব্যবহারকারীদের বিভিন্ন অনুমতি দেওয়া হয়, যেমন read, write, delete ইত্যাদি।

Authorization উদাহরণ (Node.js ও JWT):

// JWT (JSON Web Token) ব্যবহার করে Authorization উদাহরণ

const jwt = require('jsonwebtoken');

// Token তৈরি করা
const token = jwt.sign({ userId: user._id, role: user.role }, 'your_secret_key');

// Authorization middleware
function verifyToken(req, res, next) {
    const token = req.headers['authorization'];

    if (!token) {
        return res.status(403).send('No token provided');
    }

    jwt.verify(token, 'your_secret_key', function(err, decoded) {
        if (err) {
            return res.status(500).send('Failed to authenticate token');
        }

        // Authorization চেক (Role-based)
        if (decoded.role !== 'admin') {
            return res.status(403).send('Permission denied');
        }

        req.userId = decoded.userId;
        next();
    });
}

এখানে, JWT টোকেনের মাধ্যমে ব্যবহারকারীর role যাচাই করা হচ্ছে এবং শুধুমাত্র admin রোলের ব্যবহারকারী অ্যাডমিন প্যানেলে প্রবেশ করতে পারবে।


Authentication এবং Authorization এর মধ্যে পার্থক্য

বৈশিষ্ট্যAuthenticationAuthorization
সংজ্ঞাব্যবহারকারীর পরিচয় যাচাই করা।ব্যবহারকারী কোন রিসোর্স অ্যাক্সেস করতে পারবে তা নির্ধারণ করা।
কাজব্যবহারকারী কে, তার সঠিকতা যাচাই করা।ব্যবহারকারীকে কী করতে দেওয়া হবে, সেটি যাচাই করা।
উদাহরণUsername/Password, OTP, FingerprintRole-based Access Control (RBAC), Permissions
ফোকাসWho is the user?What can the user do?
উদ্দেশ্যব্যবহারকারীর সঠিকতা যাচাই করা।ব্যবহারকারীর অ্যাক্সেস স্তর নিয়ন্ত্রণ করা।

সারাংশ

Authentication এবং Authorization দুটি নিরাপত্তা ব্যবস্থার গুরুত্বপূর্ণ অংশ। Authentication নিশ্চিত করে যে ব্যবহারকারী সঠিক এবং বৈধ, এবং Authorization নিশ্চিত করে যে ব্যবহারকারী যে ডেটা বা ফিচার অ্যাক্সেস করতে চাচ্ছে, তার জন্য অনুমতি আছে কিনা। দুটি প্রক্রিয়া একসাথে সিস্টেমে নিরাপত্তা এবং অ্যাক্সেস নিয়ন্ত্রণে গুরুত্বপূর্ণ ভূমিকা পালন করে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...